Разветвляющийся алгоритм.
|
Использование оператора if Во многих случаях требуется, чтобы некоторый оператор (или группа операторов) в программе выполнялись только при некотором условии. Именно для этого и предназначен оператор If. Существуют две его разновидности— однострочный и многострочный. Для выполнении оператора if любого типа, вначале проверяется условие и если оно истинно, то будет выполнен соответствующий оператор. В качестве примера рассмотрим обе формы оператора if. Заметим, что приведенные ниже два фрагмента кода выполняют одни и те же действия. Однострочный оператор: If x > 5 then х = 0 многострочный оператор: if x > 5 Then х = 0 end if Обратите внимание, что вторая строка многострочного оператора If указана с некоторым отступом. синтаксис языка этого не требует, однако в программистской практике вы будете неоднократно встречать подобную запись. Дело в том, что отступы облегчают восприятие вложенных операторов If. Если условие не выполняется (в предыдущем примере, если х будет меньше или равно 5), то указания в однострочном операторе If инструкция выполняться не будет. В случае многострочного оператора If не будет выполняться целый блок операторов, заключенных между ключевыми словами If и End If. Программа просто перейдет к выполнению следующего по порядку оператора.
Конструкция End If означает просто, что в этом месте оператор If заканчивается. Часть Else может и отсутствовать. Например, If a <> 4 Then b=3 Print b End If Самое замечательное в блочном If то, что здесь можно одно за другим проверять несколько условий. Проиллюстрирую на примере. Задача. В компьютер вводится целое число а. • Если а<0, то компьютер должен сказать Число отрицательно. • Если а=0, то компьютер должен сказать Вы ввели нуль. • Если а>100, то компьютер должен сказать Число большое. В остальных случаях компьютер ничего не должен говорить, а только вычислить и напечатать его квадрат. В любом случае после всего этого компьютер должен сказать До свидания. Вот программа: Private Sub Command1_Click()
a=InputBox("Введите число") If a < 0 Then
MsgBox ("Число
отрицательно")
end if lf a = 0 Then MsgBox ("Вы ввели нуль")
if MsgBox ("Число большое") Else Print a^ 2 End If MsgBox ("До свидания!") End Sub Elself переводят так: "иначе если". Получается вот что: Если а < 0, то... иначе если а = 0, то... иначе если а > 100, то... Блочный If выполняется так. Сначала проверяется первое условие (а < 0). Если оно не выполняется, то Visual Basic переходит к проверке второго условия(а = 0), и т. д. Наткнувшись, наконец, на условие, которое выполняется, Visual Basic выполняет операторы, стоящие после его Then, и на этом заканчивает работу, даже если ниже есть условия, которые тоже выполняются. Если не выполняется ни одно из условий, Visual Basic выполняет операторы, стоящие за Else. Вот синтаксис многострочного оператора If: If условие Then операторы
[
Elself условие
Then [ Else операторы операторы ...] . . End If
Выражения а > с а > 28 And a < 30 Name_1=”Михаил” And Vozrast=29 а>2 Or x=b Or c<>1 имеют общую черту. Про каждое из них можно сказать, верно оно или нет в каждый момент времени. Такие выражения называются логическими выражениями. Если логическое выражение верно, то говорят, что оно имеет значение True (правда). Если логическое выражение неверно, то говорят, что оно имеет значение False (ложь). Любое логическое выражение может стоять в качестве условия в операторе If. Логические выражения могут быть сложными - содержать одновременно операции And, Or, Not.
Оператор варианта Select Case Пример: Dim Otmetka As Integer Private Sub Command1_Click() Otmetka = InputBox(Какую отметку ты получил по физике?") Select Case Otmetka Case 1,2 Print "Кошмар!"
Case 4 Print "Неплохо" Case 5
Case Else Print "Таких отметок не бывает"
End Sub Логика работы Select Case абсолютно такая же, как и у блочного If. В процессе исполнения оператора компьютер сравнивает значение переменной Otmetka по очереди со всеми значениями, перечисленными в вариантах. Наткнувшись на совпадающее значение, он выполняет операторы, стоящие в этом варианте. На этом исполнение оператора Select Case завершается
|